/*fpkg*/package foo.bar {
	import pkg.Stuff;
	/**
	 * All syntax not include in other specific tests
	 */
	public class /*f*/Blat extends Bing implements Febraz, Goo {

		private var data:String;
		private var data:* = womble();
		internal var m_methods:Array;
		private const CHARS_MAP:Object = {"h": "J", 
											"m": "N", 
											"s": "S"
											};
		private static var WIDTH_BASE:Object = { };

		public function Blat(xml:XML) {
			super();
			
			if(a == foo)
				a = foo2
			else if (baseDO is YComponent && (baseDO as YComponent).moduleBorder!=null)
				var baseBorder:Border = (baseDO as YComponent).moduleBorder;
			
			return (terminator is String);
		}

		[Annotate]
		[Basic()]
		[String("foo")]
		[Num(1)]
		[Bool(false)]
		[Arg(foo="bar")]
		[List(foo="bar", that=2)]
		[Event("alpha")]
		[Event("beta")]
		private var x:String = 1;
		/** javadoc? */
		public static function func(arg:Number, foo=null, ...):Boolean {
//			default xml namespace = "http://example.com/";
			for (var b=1;b<=10;b++) { bar(); }
			for (;;) { break; }
			for (var g in blah) { r(); }
			for each (var g in blah) { r(); }
			if (h==undefined) { throw new Error(); } else { /* bar */ }
			if (a) b();
			while (false) v();
			do { continue; } while (m);
			switch (blah) {
				case 3: x(); y();
				case 4: next;
				default: x(); y();
			}
			try {
				var a:Number = Math.tan((abase/2 * Math.PI)/180);
			} catch (e) {
				var a=b?(x+y):new Foo();
			} catch (f:Error) {
			}
			try {
				foo();
			} finally {

			}
			l=[1,'2']; 
			/* unary expressions */
			--a; ++a; a--; a++; a = -a;
			return a.call(i.j*k, l[m]);
		}
		
		public static function SKIP( ... args ):void {
			var token:* = { eventToken: true };
			token.registars = [];
			var items:Array = (value as Array);
			
			if( foo === bar){
				scheduleMethods( { catchHandler: catchHandler } );
			}
			else if ( trimmedValue.toLowerCase()=='false' ){
			}
			else if(_oldTargets != null && child in _oldTargets){
			  token.registars.push( { source: source, type: type, fn: eFn } );
			}
			
			var fn:Function = function( ... rargs ):void {
				me.performCall( callback, rargs );
				me.callbackHandled(token);
			};

		}
		
		internal function callbackHandled(eventToken:Object):void{
			delete eventToken.registars;
		}
		
		public function get boolean():Boolean {
			if ( this===UNKNOWN )
				throw new IllegalOperationError( "UNKNOWN Ternary doesn't have boolean value" );
			
			return this===TRUE;
		}		
		
		override flash_proxy function callProperty(name:*, ... rest):* {
			for each( var attr:XML in node.@* ) {
				buf += " " + attr.localName()+"=\""+encodeXMLChars(attr.toString())+"\"";
			}
		}
		
		public static function AddArguments( target:Function, ... additionalArgs ):Function {
			return function( ... actualArgs ):* {
				return target.apply( null, actualArgs.concat( additionalArgs ) );
			}
		} 

		
	}
} // trailing comment